/**
 */
package de.fhdw.seminar.xtext.umlDsl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see de.fhdw.seminar.xtext.umlDsl.UmlDslFactory
 * @model kind="package"
 * @generated
 */
public interface UmlDslPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "umlDsl";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.fhdw.de/seminar/xtext/UmlDsl";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "umlDsl";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  UmlDslPackage eINSTANCE = de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl.init();

  /**
   * The meta object id for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlModelImpl <em>Uml Model</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlModelImpl
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlModel()
   * @generated
   */
  int UML_MODEL = 0;

  /**
   * The feature id for the '<em><b>Classes</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_MODEL__CLASSES = 0;

  /**
   * The number of structural features of the '<em>Uml Model</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_MODEL_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlClassImpl <em>Uml Class</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlClassImpl
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlClass()
   * @generated
   */
  int UML_CLASS = 1;

  /**
   * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_CLASS__IS_ABSTRACT = 0;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_CLASS__NAME = 1;

  /**
   * The feature id for the '<em><b>Super Type</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_CLASS__SUPER_TYPE = 2;

  /**
   * The feature id for the '<em><b>Associations</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_CLASS__ASSOCIATIONS = 3;

  /**
   * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_CLASS__ATTRIBUTES = 4;

  /**
   * The number of structural features of the '<em>Uml Class</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_CLASS_FEATURE_COUNT = 5;

  /**
   * The meta object id for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlAssociationImpl <em>Uml Association</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlAssociationImpl
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlAssociation()
   * @generated
   */
  int UML_ASSOCIATION = 2;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ASSOCIATION__NAME = 0;

  /**
   * The feature id for the '<em><b>Type</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ASSOCIATION__TYPE = 1;

  /**
   * The feature id for the '<em><b>Is Many</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ASSOCIATION__IS_MANY = 2;

  /**
   * The number of structural features of the '<em>Uml Association</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ASSOCIATION_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlAttributeImpl <em>Uml Attribute</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlAttributeImpl
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlAttribute()
   * @generated
   */
  int UML_ATTRIBUTE = 3;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ATTRIBUTE__NAME = 0;

  /**
   * The feature id for the '<em><b>Type</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ATTRIBUTE__TYPE = 1;

  /**
   * The feature id for the '<em><b>Is Many</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ATTRIBUTE__IS_MANY = 2;

  /**
   * The number of structural features of the '<em>Uml Attribute</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int UML_ATTRIBUTE_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link de.fhdw.seminar.xtext.umlDsl.BuiltInTypes <em>Built In Types</em>}' enum.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.fhdw.seminar.xtext.umlDsl.BuiltInTypes
   * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getBuiltInTypes()
   * @generated
   */
  int BUILT_IN_TYPES = 4;


  /**
   * Returns the meta object for class '{@link de.fhdw.seminar.xtext.umlDsl.UmlModel <em>Uml Model</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Uml Model</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlModel
   * @generated
   */
  EClass getUmlModel();

  /**
   * Returns the meta object for the containment reference list '{@link de.fhdw.seminar.xtext.umlDsl.UmlModel#getClasses <em>Classes</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Classes</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlModel#getClasses()
   * @see #getUmlModel()
   * @generated
   */
  EReference getUmlModel_Classes();

  /**
   * Returns the meta object for class '{@link de.fhdw.seminar.xtext.umlDsl.UmlClass <em>Uml Class</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Uml Class</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlClass
   * @generated
   */
  EClass getUmlClass();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlClass#isIsAbstract <em>Is Abstract</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Is Abstract</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlClass#isIsAbstract()
   * @see #getUmlClass()
   * @generated
   */
  EAttribute getUmlClass_IsAbstract();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlClass#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlClass#getName()
   * @see #getUmlClass()
   * @generated
   */
  EAttribute getUmlClass_Name();

  /**
   * Returns the meta object for the reference '{@link de.fhdw.seminar.xtext.umlDsl.UmlClass#getSuperType <em>Super Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Super Type</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlClass#getSuperType()
   * @see #getUmlClass()
   * @generated
   */
  EReference getUmlClass_SuperType();

  /**
   * Returns the meta object for the containment reference list '{@link de.fhdw.seminar.xtext.umlDsl.UmlClass#getAssociations <em>Associations</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Associations</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlClass#getAssociations()
   * @see #getUmlClass()
   * @generated
   */
  EReference getUmlClass_Associations();

  /**
   * Returns the meta object for the containment reference list '{@link de.fhdw.seminar.xtext.umlDsl.UmlClass#getAttributes <em>Attributes</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Attributes</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlClass#getAttributes()
   * @see #getUmlClass()
   * @generated
   */
  EReference getUmlClass_Attributes();

  /**
   * Returns the meta object for class '{@link de.fhdw.seminar.xtext.umlDsl.UmlAssociation <em>Uml Association</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Uml Association</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAssociation
   * @generated
   */
  EClass getUmlAssociation();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlAssociation#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAssociation#getName()
   * @see #getUmlAssociation()
   * @generated
   */
  EAttribute getUmlAssociation_Name();

  /**
   * Returns the meta object for the reference '{@link de.fhdw.seminar.xtext.umlDsl.UmlAssociation#getType <em>Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Type</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAssociation#getType()
   * @see #getUmlAssociation()
   * @generated
   */
  EReference getUmlAssociation_Type();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlAssociation#isIsMany <em>Is Many</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Is Many</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAssociation#isIsMany()
   * @see #getUmlAssociation()
   * @generated
   */
  EAttribute getUmlAssociation_IsMany();

  /**
   * Returns the meta object for class '{@link de.fhdw.seminar.xtext.umlDsl.UmlAttribute <em>Uml Attribute</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Uml Attribute</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAttribute
   * @generated
   */
  EClass getUmlAttribute();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlAttribute#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAttribute#getName()
   * @see #getUmlAttribute()
   * @generated
   */
  EAttribute getUmlAttribute_Name();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlAttribute#getType <em>Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Type</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAttribute#getType()
   * @see #getUmlAttribute()
   * @generated
   */
  EAttribute getUmlAttribute_Type();

  /**
   * Returns the meta object for the attribute '{@link de.fhdw.seminar.xtext.umlDsl.UmlAttribute#isIsMany <em>Is Many</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Is Many</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.UmlAttribute#isIsMany()
   * @see #getUmlAttribute()
   * @generated
   */
  EAttribute getUmlAttribute_IsMany();

  /**
   * Returns the meta object for enum '{@link de.fhdw.seminar.xtext.umlDsl.BuiltInTypes <em>Built In Types</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for enum '<em>Built In Types</em>'.
   * @see de.fhdw.seminar.xtext.umlDsl.BuiltInTypes
   * @generated
   */
  EEnum getBuiltInTypes();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  UmlDslFactory getUmlDslFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlModelImpl <em>Uml Model</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlModelImpl
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlModel()
     * @generated
     */
    EClass UML_MODEL = eINSTANCE.getUmlModel();

    /**
     * The meta object literal for the '<em><b>Classes</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference UML_MODEL__CLASSES = eINSTANCE.getUmlModel_Classes();

    /**
     * The meta object literal for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlClassImpl <em>Uml Class</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlClassImpl
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlClass()
     * @generated
     */
    EClass UML_CLASS = eINSTANCE.getUmlClass();

    /**
     * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_CLASS__IS_ABSTRACT = eINSTANCE.getUmlClass_IsAbstract();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_CLASS__NAME = eINSTANCE.getUmlClass_Name();

    /**
     * The meta object literal for the '<em><b>Super Type</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference UML_CLASS__SUPER_TYPE = eINSTANCE.getUmlClass_SuperType();

    /**
     * The meta object literal for the '<em><b>Associations</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference UML_CLASS__ASSOCIATIONS = eINSTANCE.getUmlClass_Associations();

    /**
     * The meta object literal for the '<em><b>Attributes</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference UML_CLASS__ATTRIBUTES = eINSTANCE.getUmlClass_Attributes();

    /**
     * The meta object literal for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlAssociationImpl <em>Uml Association</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlAssociationImpl
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlAssociation()
     * @generated
     */
    EClass UML_ASSOCIATION = eINSTANCE.getUmlAssociation();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_ASSOCIATION__NAME = eINSTANCE.getUmlAssociation_Name();

    /**
     * The meta object literal for the '<em><b>Type</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference UML_ASSOCIATION__TYPE = eINSTANCE.getUmlAssociation_Type();

    /**
     * The meta object literal for the '<em><b>Is Many</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_ASSOCIATION__IS_MANY = eINSTANCE.getUmlAssociation_IsMany();

    /**
     * The meta object literal for the '{@link de.fhdw.seminar.xtext.umlDsl.impl.UmlAttributeImpl <em>Uml Attribute</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlAttributeImpl
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getUmlAttribute()
     * @generated
     */
    EClass UML_ATTRIBUTE = eINSTANCE.getUmlAttribute();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_ATTRIBUTE__NAME = eINSTANCE.getUmlAttribute_Name();

    /**
     * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_ATTRIBUTE__TYPE = eINSTANCE.getUmlAttribute_Type();

    /**
     * The meta object literal for the '<em><b>Is Many</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute UML_ATTRIBUTE__IS_MANY = eINSTANCE.getUmlAttribute_IsMany();

    /**
     * The meta object literal for the '{@link de.fhdw.seminar.xtext.umlDsl.BuiltInTypes <em>Built In Types</em>}' enum.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.fhdw.seminar.xtext.umlDsl.BuiltInTypes
     * @see de.fhdw.seminar.xtext.umlDsl.impl.UmlDslPackageImpl#getBuiltInTypes()
     * @generated
     */
    EEnum BUILT_IN_TYPES = eINSTANCE.getBuiltInTypes();

  }

} //UmlDslPackage
